明天我將會介紹如何在 VM 上用 Docker 建立 Tensorflow 開發環境。
為了明天能夠順利的設定 Docker,今天我們先來簡單認識一下,什麼是 Docker?
Docker 這個詞,同時意指:
而 Docker Engine 又分為:
顯而易見的,Docker daemons 就像 Server 一樣,負責接收 Client commands 的指令,並完成 Docker 相關任務。
除此之外,Docker 也擁有類似 GitHub 的網站服務:Docker registry,可用於儲存 Docker 相關資料。
我們前面有介紹過 LXC,而 Docker 則可以想像成 LXC 的管理工具。
Docker 跟 PVE 一樣都是虛擬化技術 High Level 的管理工具,也同樣利用 LibVirt 這套工具來操作 LXC,使我們不用接觸到許多底層的東西,也能妥善利用虛擬化技術。
所以其層級由底層到上是:LXC -> LibVirt -> Docker
不過,對我們來說最重要的還是如何管理與使用 Docker。
在 Docker 內,為了管理容器,他將其抽象為以下幾個概念:
所以我們可以不斷用 Override 的想法,以 Layer 的方式疊床架屋 Images。
接著以該 Images,實例化出我們真的能用的 Containers。
並利用這兩個方式來管理設定之:
所以,如果我們今天想在 PVE 內安裝一台 VM ,並在其中使用 Docker,根據這二十天來的知識,會變成以下這個結構。(由底層向上)KVM -> QEMU -> LibVirt -> PVE -> LXC -> LibVirt -> Docker